# BOUJEDLI Najim
# PANERI Jérémy

# Variables
AR = ar rcs
CC = gcc -g
CFLAGS = -O4 -W -Wall
CPPFLAGS = -I.
LDLIBS = -LLIB -lm -lgraphe -lliste

# gestion des repertoires
SRCDIR = ./SRC
OBJDIR = ./OBJ
BINDIR = ./BIN
LIBDIR = ./LIB

# Variables propres a cette applie
MAIN = $(BINDIR)/menu
SRC = $(wildcard $(SRCDIR)/*.c)
OBJ = $(SRC:$(SRCDIR)/%.c=$(OBJDIR)/%.o)


# cible principale
all : $(LIBDIR) $(BINDIR) $(OBJDIR) $(MAIN)

$(LIBDIR)/%.a : $(OBJDIR)/%.o
	$(AR) $@ $^

# Regle principale avec l'edition de lien
$(MAIN) : $(OBJ) $(LIBDIR)/libgraphe.a $(LIBDIR)/libliste.a
	$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $^ $(LDLIBS) 

# Regle de construction des .o
$(OBJDIR)/%.o : $(SRCDIR)/%.c $(SRCDIR)/%.h $(OBJDIR)
	$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $(OBJDIR)/$*.o 

# Regle de construction des .o
$(OBJDIR)/%.o : $(SRCDIR)/%.c $(OBJDIR)
	$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $(OBJDIR)/$*.o 

$(OBJDIR) :
	mkdir $(OBJDIR)

$(BINDIR) :
	mkdir $(BINDIR)

$(LIBDIR) :
	mkdir $(LIBDIR)


# Nettoyage des fichiers intermediaires
clean : 
	rm $(OBJ);

# suppression de tous les fichiers issus de la compilation
veryclean : clean
	rm $(MAIN)
	rm $(LIBDIR)/*